import axios from 'axios'
axios.defaults.baseURL = 'http://www.520gongfu.com:9527/api'



// 添加请求拦截器
axios.interceptors.request.use(function(config) {
    // console.log('config:', config);
    // 设置 请求 token 校验
    const token = sessionStorage.getItem('token')
    if (token) {
        config.headers['Authorization'] = token
    }
    // 在发送请求之前做些什么
    return config;
}, function(error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

//首页轮播数据

export const getSliders = (callback) => {
    axios.get('/home/sliders').then(function(response) {
            // console.log(response);
            callback && callback(response.data)
        })
        .catch(function(error) {
            console.log(error);
        })
}


//首页 快捷导航 （首页分类）
export const homeCategory = (callback) => {
    axios.get('/home/category').then(function(res) {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}

//首页 楼梯商品数据

export const getFloorList = (callback) => {
    axios.get('/home/floorlist').then(res => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}

/**
 * 商品列表
 */
export const getProductList = (params, callback) => {
    return axios.get('/product/list', {
        // get请求参数配置
        params: params, // 参数
        // 序列化参数（格式化处理参数）
        paramsSerializer: function(params) {
            return qs.stringify(params)
        }
    }).then(res => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}


/**
 * 商品详情
 */
export const getProductDetail = (params, callback) => {
    return axios.get('/product/detail', {
        // get请求参数配置
        params: params, // 参数
        // 序列化参数（格式化处理参数）
        paramsSerializer: function(params) {
            return qs.stringify(params)
        }
    }).then(res => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}



/**
 * 分类数据
 */
export const getcategoryData = (callback) => {
    return axios.get('/category/data').then(res => {
        console.log('res', res);
        console.log('res.data', res.data);
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}


// npm i qs -S
import qs from 'qs'

/**
 * 登录
 */
export const login = (params, callback) => {
    return axios.post('/user/login', qs.stringify(params)).then(res => {
        const { data } = res
        callback && callback(data)
    }).catch(err => {
        console.log(err);
    })
}

// http/index.js
/**
 * 
 * 获取用户信息
 * 
 */
export const getUserInfo = (callback) => {
    return axios.get('/user/info').then(res => {
        // console.log('userinfo', res.data);
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}

/**
 * 推荐商品 
 * */
export const getRecommend = (callback) => {
    return axios.get('/product/recommend').then(res => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}

/**
 * 获取购物车数据
 */
export const getCartList = (callback) => {
    return axios.get('/cart/list').then(res => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}


/**
 * 加入购物车
 */
export const submitToCar = (params) => {
    return axios.post('/cart/add', qs.stringify(params)).then(res => {
        const { data } = res
        return data
    })
}

/**
 * 删除购物车数据
 * */
export const delCar = (params, callback) => {
    return axios.post('/cart/del', qs.stringify(params)).then(res => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}


/**
 * 添加购物车数据 /cart/add
 * */
export const cartAdd = (params, callback) => {
    return axios.post('/cart/add', qs.stringify(params)).then(res => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}



/*
    获取QQ 授权的信息
*/
export const getUserQQinfo = (params, callback) => {
    return axios.get('/user/qqinfo', {
        // get请求参数配置
        params: params, // 参数
        // 序列化参数（格式化处理参数）
        paramsSerializer: function(params) {
            return qs.stringify(params)
        }
    }).then(res => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}


/*
     获取 QQ 授权信息之后 
     获取 当前 应用的登录授权 token
     
*/
export const getUserQQlogin = (params, callback) => {
    return axios.post('/user/qqlogin', qs.stringify(params)).then(res => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}